Note: this is getting replaced through 2.0 revision in rand++

v1.0 multiregion GS codes and ASM

Sets patch:
USA
03A5C0 50 3C01800814020004820F000B100F00033C0280038C42B520144F000F3C0A80078E0800048C229C6800084880012848238D4A5D1800094880012848230009488000026080002C6021012A5821AD8B9C28

JAP
03A5E8 50 3C01800814020004820F000B100F00033C0280038C42B560144F000F3C0A80078E0800048C229CD800084880012848238D4A5D5800094880012848230009488000026080002C6021012A5821AD8B9C98

PAL
0383E8 50 3C01800714020004820F000B100F00033C0280028C426A70144F000F3C0A80068E0800048C22877800084880012848238D4A4C5800094880012848230009488000026080002C6021012A5821AD8B8738


Sets Codes
USA
81079C70 820F
81079C72 000B
81079C74 100F
81079C76 0004
81079C78 3C01
81079C7A 8008
81079C7C 3C02
81079C7E 8003
81079C80 8C42
81079C82 B520
81079C84 144F
81079C86 000D
81079C88 8E08
81079C8A 0004
81079C8C 8C22
81079C8E 9C68
81079C90 3409
81079C92 002C
81079C94 0109
81079C96 0019
81079C98 3C0A
81079C9A 8007
81079C9C 8D4A
81079C9E 5D18
81079CA0 0000
81079CA2 4812
81079CA4 0002
81079CA6 6080
81079CA8 002C
81079CAA 6021
81079CAC 012A
81079CAE 5821
81079CB0 AD8B
81079CB2 9C28
81079CB4 244D
81079CB6 0001
81079CB8 AC2D
81079CBA 9C68
81079CBC 0BC0
81079CBE 1779
81079CC0 2610
81079CC2 000C
8104F1AC 7007
8104F1AE 9C70

Jap
81079CE0 820F
81079CE2 000B
81079CE4 100F
81079CE6 0004
81079CE8 3C01
81079CEA 8008
81079CEC 3C02
81079CEE 8003
81079CF0 8C42
81079CF2 B560
81079CF4 144F
81079CF6 000D
81079CF8 8E08
81079CFA 0004
81079CFC 8C22
81079CFE 9CD8
81079D00 3409
81079D02 002C
81079D04 0109
81079D06 0019
81079D08 3C0A
81079D0A 8007
81079D0C 8D4A
81079D0E 5D58
81079D10 0000
81079D12 4812
81079D14 0002
81079D16 6080
81079D18 002C
81079D1A 6021
81079D1C 012A
81079D1E 5821
81079D20 AD8B
81079D22 9C98
81079D24 244D
81079D26 0001
81079D28 AC2D
81079D2A 9CD8
81079D2C 0BC0
81079D2E 177A
81079D30 2610
81079D32 000C
8104F1DC 7007
8104F1DE 9CE0

PAL
81068780 820F
81068782 000B
81068784 100F
81068786 0004
81068788 3C01
8106878A 8007
8106878C 3C02
8106878E 8002
81068790 8C42
81068792 6A70
81068794 144F
81068796 000D
81068798 8E08
8106879A 0004
8106879C 8C22
8106879E 8778
810687A0 3409
810687A2 002C
810687A4 0109
810687A6 0019
810687A8 3C0A
810687AA 8006
810687AC 8D4A
810687AE 4C58
810687B0 0000
810687B2 4812
810687B4 0002
810687B6 6080
810687B8 002C
810687BA 6021
810687BC 012A
810687BE 5821
810687C0 AD8B
810687C2 8738
810687C4 244D
810687C6 0001
810687C8 AC2D
810687CA 8778
810687CC 0BC0
810687CE 175A
810687D0 2610
810687D2 000C
810475FC 7006
810475FE 8780

-----------
jap offset for 03A5D4
3C0E8007	LUI	T6,8007
8DCE5D58	LW	T6,5D58 (T6)	//T6=offset to 0xxx preset table
11C00018	BEQ	T6,R0,[END]	//abort if NULL
00000000	NOP
0FC305A4	JAL	7F0C1690	//returns V0=set number
00000000	NOP
8E0F0008	LW	T7,0008 (S0)	//T7=set# for spawn
3C0A8007	LUI	T2,8007
3C018008	LUI	AT,8008
144F0011	BNE	V0,T7,[END]	//branch if set numbers don't match
00000000	NOP
8E080004	LW	T0,0004 (S0)	//T0=0xxx preset
3C028008	LUI	V0,8008
8C429CD8	LW	V0,9CD8 (V0)	//V0=spawn counter
00084880	SLL	T1,T0,0x2
01284823	SUBU	T1,T1,T0
8D4A5D58	LW	T2,5D58 (T2)	//T2=0xxx preset list
00094880	SLL	T1,T1,0x2
01284823	SUBU	T1,T1,T0
00094880	SLL	T1,T1,0x2	//T1=preset * 2C (offset)
00026080	SLL	T4,V0,0x2	//T4=offset in spawn pointer list
002C0821	ADDU	AT,AT,T4
012A5821	ADDU	T3,T1,T2	//T3=address of preset
AC2B9C98	SW	T3,9C98 (AT)	//save preset address in list
3C018008	LUI	AT,8008
244D0001	ADDIU	T5,V0,0001	//count++
AC2D9CD8	SW	T5,9CD8 (AT)	//save new count
//[END]
100000C5	BEQ	R0,R0,[process next command]
2610000C	ADDIU	S0,S0,000C	//S0=next command

----------------
PAL	0383D4
3C0E8006	LUI	T6,8006
8DCE4C58	LW	T6,4C58 (T6)	//T6=offset to 0xxx preset table
11C00018	BEQ	T6,R0,[END]	//abort if NULL pointer
00000000	NOP
0FC2FFA8	JAL	7F0BFEA0	//returns V0=set number
00000000	NOP
8E0F0008	LW	T7,0008 (S0)	//T7=set# for spawn
3C0A8006	LUI	T2,8006
3C018007	LUI	AT,8007
144F0011	BNE	V0,T7,[END]	//branch if wrong set
00000000	NOP
8E080004	LW	T0,0004 (S0)	//T0=preset
3C028007	LUI	V0,8007
8C428778	LW	V0,8778 (V0)	//V0=spawn counter
00084880	SLL	T1,T0,0x2
01284823	SUBU	T1,T1,T0
8D4A4C58	LW	T2,4C58 (T2)
00094880	SLL	T1,T1,0x2
01284823	SUBU	T1,T1,T0
00094880	SLL	T1,T1,0x2	//T1=preset * 2C (offset)
00026080	SLL	T4,V0,0x2	//T4=offset in spawn list
002C0821	ADDU	AT,AT,T4
012A5821	ADDU	T3,T1,T2	//T3=address of preset
AC2B8738	SW	T3,8738 (AT)	//save preset address to list
3C018007	LUI	AT,8007
244D0001	ADDIU	T5,V0,0001	//count++
AC2D8778	SW	T5,8778 (AT)	//save new count
//[END]
100000C5	BEQ	R0,R0,[PROCESS NEXT COMMAND]
2610000C	ADDIU	S0,S0,000C	//S0=next command

+++++++++++++++++++++++
820F000B	LB	T7,000B (S0)	//T7=set#
100F0004	BEQ	T7,R0,[expando]	//set is 0
3C01800?	LUI	AT,800?
3C02800?	LUI	V0,800?
8C42????	LW	V0,???? (V0)	//V0=#Players
144F000C	BNE	V0,T7,[END]	//set = player# or else
8E080004	LW	T0,0004 (S0)
8C22????	LW	V0,???? (AT)	//V0=counter
3409002C	ORI	T1,R0,002C
02090019	MULTU	T1,T0
3C0A800?	LUI	T2,800?
8D4A????	LW	T2,???? (T2)	//T2=0xxx preset list
00004812	MFLO	T1
002C6021	ADDU	T4,AT,T4

012A5821	ADDU	T3,T1,T2
AD8B????	SW	T3,???? (T4)	//store spawn addy
244D0001	ADDIU	T5,V0,0001	//count++
AC2D????	SW	T5,???? (AT)	//save new count
[END]
3C187F00	LUI	T8,7F00
2718????	ADDIU	T8,T8,????	//T8=return address
03000008	JR	T8
2610000C	ADDIU	S0,S0,000C

[alt end, if within first 4MB]
0BC0????	J	7F00????
2610000C	ADDIU	S0,S0,000C
